package com.sunny.fetch.pojo;

import java.util.ArrayList;
import java.util.List;

public class FUsTbrExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public FUsTbrExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andTidIsNull() {
            addCriterion("tid is null");
            return (Criteria) this;
        }

        public Criteria andTidIsNotNull() {
            addCriterion("tid is not null");
            return (Criteria) this;
        }

        public Criteria andTidEqualTo(Long value) {
            addCriterion("tid =", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotEqualTo(Long value) {
            addCriterion("tid <>", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThan(Long value) {
            addCriterion("tid >", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidGreaterThanOrEqualTo(Long value) {
            addCriterion("tid >=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThan(Long value) {
            addCriterion("tid <", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidLessThanOrEqualTo(Long value) {
            addCriterion("tid <=", value, "tid");
            return (Criteria) this;
        }

        public Criteria andTidIn(List<Long> values) {
            addCriterion("tid in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotIn(List<Long> values) {
            addCriterion("tid not in", values, "tid");
            return (Criteria) this;
        }

        public Criteria andTidBetween(Long value1, Long value2) {
            addCriterion("tid between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andTidNotBetween(Long value1, Long value2) {
            addCriterion("tid not between", value1, value2, "tid");
            return (Criteria) this;
        }

        public Criteria andDateIsNull() {
            addCriterion("date is null");
            return (Criteria) this;
        }

        public Criteria andDateIsNotNull() {
            addCriterion("date is not null");
            return (Criteria) this;
        }

        public Criteria andDateEqualTo(String value) {
            addCriterion("date =", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateNotEqualTo(String value) {
            addCriterion("date <>", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateGreaterThan(String value) {
            addCriterion("date >", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateGreaterThanOrEqualTo(String value) {
            addCriterion("date >=", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateLessThan(String value) {
            addCriterion("date <", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateLessThanOrEqualTo(String value) {
            addCriterion("date <=", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateLike(String value) {
            addCriterion("date like", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateNotLike(String value) {
            addCriterion("date not like", value, "date");
            return (Criteria) this;
        }

        public Criteria andDateIn(List<String> values) {
            addCriterion("date in", values, "date");
            return (Criteria) this;
        }

        public Criteria andDateNotIn(List<String> values) {
            addCriterion("date not in", values, "date");
            return (Criteria) this;
        }

        public Criteria andDateBetween(String value1, String value2) {
            addCriterion("date between", value1, value2, "date");
            return (Criteria) this;
        }

        public Criteria andDateNotBetween(String value1, String value2) {
            addCriterion("date not between", value1, value2, "date");
            return (Criteria) this;
        }

        public Criteria andW4BdIsNull() {
            addCriterion("w4_bd is null");
            return (Criteria) this;
        }

        public Criteria andW4BdIsNotNull() {
            addCriterion("w4_bd is not null");
            return (Criteria) this;
        }

        public Criteria andW4BdEqualTo(Float value) {
            addCriterion("w4_bd =", value, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4BdNotEqualTo(Float value) {
            addCriterion("w4_bd <>", value, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4BdGreaterThan(Float value) {
            addCriterion("w4_bd >", value, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4BdGreaterThanOrEqualTo(Float value) {
            addCriterion("w4_bd >=", value, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4BdLessThan(Float value) {
            addCriterion("w4_bd <", value, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4BdLessThanOrEqualTo(Float value) {
            addCriterion("w4_bd <=", value, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4BdIn(List<Float> values) {
            addCriterion("w4_bd in", values, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4BdNotIn(List<Float> values) {
            addCriterion("w4_bd not in", values, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4BdBetween(Float value1, Float value2) {
            addCriterion("w4_bd between", value1, value2, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4BdNotBetween(Float value1, Float value2) {
            addCriterion("w4_bd not between", value1, value2, "w4Bd");
            return (Criteria) this;
        }

        public Criteria andW4CeIsNull() {
            addCriterion("w4_ce is null");
            return (Criteria) this;
        }

        public Criteria andW4CeIsNotNull() {
            addCriterion("w4_ce is not null");
            return (Criteria) this;
        }

        public Criteria andW4CeEqualTo(Float value) {
            addCriterion("w4_ce =", value, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW4CeNotEqualTo(Float value) {
            addCriterion("w4_ce <>", value, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW4CeGreaterThan(Float value) {
            addCriterion("w4_ce >", value, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW4CeGreaterThanOrEqualTo(Float value) {
            addCriterion("w4_ce >=", value, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW4CeLessThan(Float value) {
            addCriterion("w4_ce <", value, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW4CeLessThanOrEqualTo(Float value) {
            addCriterion("w4_ce <=", value, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW4CeIn(List<Float> values) {
            addCriterion("w4_ce in", values, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW4CeNotIn(List<Float> values) {
            addCriterion("w4_ce not in", values, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW4CeBetween(Float value1, Float value2) {
            addCriterion("w4_ce between", value1, value2, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW4CeNotBetween(Float value1, Float value2) {
            addCriterion("w4_ce not between", value1, value2, "w4Ce");
            return (Criteria) this;
        }

        public Criteria andW8BdIsNull() {
            addCriterion("w8_bd is null");
            return (Criteria) this;
        }

        public Criteria andW8BdIsNotNull() {
            addCriterion("w8_bd is not null");
            return (Criteria) this;
        }

        public Criteria andW8BdEqualTo(Float value) {
            addCriterion("w8_bd =", value, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8BdNotEqualTo(Float value) {
            addCriterion("w8_bd <>", value, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8BdGreaterThan(Float value) {
            addCriterion("w8_bd >", value, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8BdGreaterThanOrEqualTo(Float value) {
            addCriterion("w8_bd >=", value, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8BdLessThan(Float value) {
            addCriterion("w8_bd <", value, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8BdLessThanOrEqualTo(Float value) {
            addCriterion("w8_bd <=", value, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8BdIn(List<Float> values) {
            addCriterion("w8_bd in", values, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8BdNotIn(List<Float> values) {
            addCriterion("w8_bd not in", values, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8BdBetween(Float value1, Float value2) {
            addCriterion("w8_bd between", value1, value2, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8BdNotBetween(Float value1, Float value2) {
            addCriterion("w8_bd not between", value1, value2, "w8Bd");
            return (Criteria) this;
        }

        public Criteria andW8CeIsNull() {
            addCriterion("w8_ce is null");
            return (Criteria) this;
        }

        public Criteria andW8CeIsNotNull() {
            addCriterion("w8_ce is not null");
            return (Criteria) this;
        }

        public Criteria andW8CeEqualTo(Float value) {
            addCriterion("w8_ce =", value, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW8CeNotEqualTo(Float value) {
            addCriterion("w8_ce <>", value, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW8CeGreaterThan(Float value) {
            addCriterion("w8_ce >", value, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW8CeGreaterThanOrEqualTo(Float value) {
            addCriterion("w8_ce >=", value, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW8CeLessThan(Float value) {
            addCriterion("w8_ce <", value, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW8CeLessThanOrEqualTo(Float value) {
            addCriterion("w8_ce <=", value, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW8CeIn(List<Float> values) {
            addCriterion("w8_ce in", values, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW8CeNotIn(List<Float> values) {
            addCriterion("w8_ce not in", values, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW8CeBetween(Float value1, Float value2) {
            addCriterion("w8_ce between", value1, value2, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW8CeNotBetween(Float value1, Float value2) {
            addCriterion("w8_ce not between", value1, value2, "w8Ce");
            return (Criteria) this;
        }

        public Criteria andW13BdIsNull() {
            addCriterion("w13_bd is null");
            return (Criteria) this;
        }

        public Criteria andW13BdIsNotNull() {
            addCriterion("w13_bd is not null");
            return (Criteria) this;
        }

        public Criteria andW13BdEqualTo(Float value) {
            addCriterion("w13_bd =", value, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13BdNotEqualTo(Float value) {
            addCriterion("w13_bd <>", value, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13BdGreaterThan(Float value) {
            addCriterion("w13_bd >", value, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13BdGreaterThanOrEqualTo(Float value) {
            addCriterion("w13_bd >=", value, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13BdLessThan(Float value) {
            addCriterion("w13_bd <", value, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13BdLessThanOrEqualTo(Float value) {
            addCriterion("w13_bd <=", value, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13BdIn(List<Float> values) {
            addCriterion("w13_bd in", values, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13BdNotIn(List<Float> values) {
            addCriterion("w13_bd not in", values, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13BdBetween(Float value1, Float value2) {
            addCriterion("w13_bd between", value1, value2, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13BdNotBetween(Float value1, Float value2) {
            addCriterion("w13_bd not between", value1, value2, "w13Bd");
            return (Criteria) this;
        }

        public Criteria andW13CeIsNull() {
            addCriterion("w13_ce is null");
            return (Criteria) this;
        }

        public Criteria andW13CeIsNotNull() {
            addCriterion("w13_ce is not null");
            return (Criteria) this;
        }

        public Criteria andW13CeEqualTo(Float value) {
            addCriterion("w13_ce =", value, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW13CeNotEqualTo(Float value) {
            addCriterion("w13_ce <>", value, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW13CeGreaterThan(Float value) {
            addCriterion("w13_ce >", value, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW13CeGreaterThanOrEqualTo(Float value) {
            addCriterion("w13_ce >=", value, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW13CeLessThan(Float value) {
            addCriterion("w13_ce <", value, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW13CeLessThanOrEqualTo(Float value) {
            addCriterion("w13_ce <=", value, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW13CeIn(List<Float> values) {
            addCriterion("w13_ce in", values, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW13CeNotIn(List<Float> values) {
            addCriterion("w13_ce not in", values, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW13CeBetween(Float value1, Float value2) {
            addCriterion("w13_ce between", value1, value2, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW13CeNotBetween(Float value1, Float value2) {
            addCriterion("w13_ce not between", value1, value2, "w13Ce");
            return (Criteria) this;
        }

        public Criteria andW26BdIsNull() {
            addCriterion("w26_bd is null");
            return (Criteria) this;
        }

        public Criteria andW26BdIsNotNull() {
            addCriterion("w26_bd is not null");
            return (Criteria) this;
        }

        public Criteria andW26BdEqualTo(Float value) {
            addCriterion("w26_bd =", value, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26BdNotEqualTo(Float value) {
            addCriterion("w26_bd <>", value, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26BdGreaterThan(Float value) {
            addCriterion("w26_bd >", value, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26BdGreaterThanOrEqualTo(Float value) {
            addCriterion("w26_bd >=", value, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26BdLessThan(Float value) {
            addCriterion("w26_bd <", value, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26BdLessThanOrEqualTo(Float value) {
            addCriterion("w26_bd <=", value, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26BdIn(List<Float> values) {
            addCriterion("w26_bd in", values, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26BdNotIn(List<Float> values) {
            addCriterion("w26_bd not in", values, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26BdBetween(Float value1, Float value2) {
            addCriterion("w26_bd between", value1, value2, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26BdNotBetween(Float value1, Float value2) {
            addCriterion("w26_bd not between", value1, value2, "w26Bd");
            return (Criteria) this;
        }

        public Criteria andW26CeIsNull() {
            addCriterion("w26_ce is null");
            return (Criteria) this;
        }

        public Criteria andW26CeIsNotNull() {
            addCriterion("w26_ce is not null");
            return (Criteria) this;
        }

        public Criteria andW26CeEqualTo(Float value) {
            addCriterion("w26_ce =", value, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW26CeNotEqualTo(Float value) {
            addCriterion("w26_ce <>", value, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW26CeGreaterThan(Float value) {
            addCriterion("w26_ce >", value, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW26CeGreaterThanOrEqualTo(Float value) {
            addCriterion("w26_ce >=", value, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW26CeLessThan(Float value) {
            addCriterion("w26_ce <", value, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW26CeLessThanOrEqualTo(Float value) {
            addCriterion("w26_ce <=", value, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW26CeIn(List<Float> values) {
            addCriterion("w26_ce in", values, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW26CeNotIn(List<Float> values) {
            addCriterion("w26_ce not in", values, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW26CeBetween(Float value1, Float value2) {
            addCriterion("w26_ce between", value1, value2, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW26CeNotBetween(Float value1, Float value2) {
            addCriterion("w26_ce not between", value1, value2, "w26Ce");
            return (Criteria) this;
        }

        public Criteria andW52BdIsNull() {
            addCriterion("w52_bd is null");
            return (Criteria) this;
        }

        public Criteria andW52BdIsNotNull() {
            addCriterion("w52_bd is not null");
            return (Criteria) this;
        }

        public Criteria andW52BdEqualTo(Float value) {
            addCriterion("w52_bd =", value, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52BdNotEqualTo(Float value) {
            addCriterion("w52_bd <>", value, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52BdGreaterThan(Float value) {
            addCriterion("w52_bd >", value, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52BdGreaterThanOrEqualTo(Float value) {
            addCriterion("w52_bd >=", value, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52BdLessThan(Float value) {
            addCriterion("w52_bd <", value, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52BdLessThanOrEqualTo(Float value) {
            addCriterion("w52_bd <=", value, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52BdIn(List<Float> values) {
            addCriterion("w52_bd in", values, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52BdNotIn(List<Float> values) {
            addCriterion("w52_bd not in", values, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52BdBetween(Float value1, Float value2) {
            addCriterion("w52_bd between", value1, value2, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52BdNotBetween(Float value1, Float value2) {
            addCriterion("w52_bd not between", value1, value2, "w52Bd");
            return (Criteria) this;
        }

        public Criteria andW52CeIsNull() {
            addCriterion("w52_ce is null");
            return (Criteria) this;
        }

        public Criteria andW52CeIsNotNull() {
            addCriterion("w52_ce is not null");
            return (Criteria) this;
        }

        public Criteria andW52CeEqualTo(Float value) {
            addCriterion("w52_ce =", value, "w52Ce");
            return (Criteria) this;
        }

        public Criteria andW52CeNotEqualTo(Float value) {
            addCriterion("w52_ce <>", value, "w52Ce");
            return (Criteria) this;
        }

        public Criteria andW52CeGreaterThan(Float value) {
            addCriterion("w52_ce >", value, "w52Ce");
            return (Criteria) this;
        }

        public Criteria andW52CeGreaterThanOrEqualTo(Float value) {
            addCriterion("w52_ce >=", value, "w52Ce");
            return (Criteria) this;
        }

        public Criteria andW52CeLessThan(Float value) {
            addCriterion("w52_ce <", value, "w52Ce");
            return (Criteria) this;
        }

        public Criteria andW52CeLessThanOrEqualTo(Float value) {
            addCriterion("w52_ce <=", value, "w52Ce");
            return (Criteria) this;
        }

        public Criteria andW52CeIn(List<Float> values) {
            addCriterion("w52_ce in", values, "w52Ce");
            return (Criteria) this;
        }

        public Criteria andW52CeNotIn(List<Float> values) {
            addCriterion("w52_ce not in", values, "w52Ce");
            return (Criteria) this;
        }

        public Criteria andW52CeBetween(Float value1, Float value2) {
            addCriterion("w52_ce between", value1, value2, "w52Ce");
            return (Criteria) this;
        }

        public Criteria andW52CeNotBetween(Float value1, Float value2) {
            addCriterion("w52_ce not between", value1, value2, "w52Ce");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}